/**
 * @화면명	공통    
 * @작성자	정회연      
 * @작성일	2014.04.22       
 * 	
 * @version 1.0   최초 작성
 */
var common = {
	//common.checkName(value);
	/**
	 * @업무명 : 이름 포멧터 체크
	 * @업무설명 : 
	 * @param ele
	 * @returns {Boolean}
	 */
	checkName: function(ele){
		if(ele.value.length == 0) {
			alert("이름을 입력해 주세요!") ;
			ele.focus() ;
			return false ;
		} else if (ele.value.indexOf(" ") != -1) {
			alert("이름에 공백을 입력할 수 없습니다.") ;
			ele.select() ;
			return false ;		
		}

		for (var i=0; i<ele.value.length; i++) {
			var ch = ele.value.charAt(i) ;
		
			if( (ch>="a" && "z">=ch) || ch=="-" || ch=="_" || (ch>="0" && "9">=ch) || (ch>="a" && "z">=ch) || (ch>="A" && "Z">=ch) || ch=="!" || ch=="@" || ch=="$" || ch=="%" || ch=="^" || ch=="&" || ch=="*" ) {
				alert("이름에는 문자 " +ch+ " 를 사용할 수 없습니다.") ;
				ele.focus() ;
				return false ;
			}
		}
		return true;
	},
	
	////////////////////////////////////////////////////////////////
	//popup 관련
	////////////////////////////////////////////////////////////////
	/**
	 * @업무명 : 새창 여는 함수
	 * @업무설명 : 
	 * @param url
	 * @param winName
	 * @param sizeW
	 * @param sizeH
	 */
	fn_newWin: function( url, winName, sizeW, sizeH){
		var nLeft  = screen.width/2 - sizeW/2 ;
		var nTop  = screen.height/2 - sizeH/2 ;
	
		opt = ",toolbar=no,menubar=no,location=no,scrollbars=yes,status=no";
		window.open(url, winName, "left=" + nLeft + ",top=" +  nTop + ",width=" + sizeW + ",height=" + sizeH  + opt );
	},
	
	/**
	 * @업무명 : 새창 여는 함수
	 * @업무설명 : 
	 * @param url
	 * @param winName
	 * @param sizeW
	 * @param sizeH
	 * @param opt
	 */
	fn_newOptWin: function( url, winName, sizeW, sizeH, opt){
		var nLeft  = screen.width/2 - sizeW/2 ;
		var nTop  = screen.height/2 - sizeH/2 ;
		
		window.open(url, winName, "left=" + nLeft + ",top=" +  nTop + ",width=" + sizeW + ",height=" + sizeH  + opt );
	},
	
	////////////////////////////////////////////////////////////////
	//Date 관련
	////////////////////////////////////////////////////////////////
	/**
	 * @업무명 : 유효한(존재하는) 월(月)인지 체크
	 * @업무설명 : 
	 * @param mm
	 * @returns {Boolean}
	 */
	isValidMonth: function(mm) {
	    var m = parseInt(mm,10);
	    return (m >= 1 && m <= 12);
	},
	
	/**
	 * @업무명 : 유효한(존재하는) 일(日)인지 체크
	 * @업무설명 : 
	 * @param yyyy
	 * @param mm
	 * @param dd
	 * @returns {Boolean}
	 */
	isValidDay: function(yyyy, mm, dd) {
	    var m = parseInt(mm,10) - 1;
	    var d = parseInt(dd,10);
	 
	    var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	    if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
	        end[1] = 29; 
	    }
	 
	    return (d >= 1 && d <= end[m]);
	},
	
	/**
	 * @업무명 : 유효한(존재하는) 시(時)인지 체크
	 * @업무설명 : 
	 * @param hh
	 * @returns {Boolean}
	 */
	isValidHour: function(hh){
	    var h = parseInt(hh,10);
	    return (h >= 1 && h <= 24);
	},
	
	/**
	 * @업무명 : 유효한(존재하는) 분(分)인지 체크
	 * @업무설명 : 
	 * @param mi
	 * @returns {Boolean}
	 */
	isValidMin: function(mi){
	    var m = parseInt(mi,10);
	    return (m >= 1 && m <= 60);
	},
	
	/**
	 * @업무명 : Time 형식인지 체크(느슨한 체크)
	 * @업무설명 : 
	 * @param time
	 * @returns {Boolean}
	 */
	isValidTimeFormat: function(time){
	    return (!isNaN(time) && time.length == 12);
	},

	/**
	 * @업무명 : 유효하는(존재하는) Time 인지 체크
	 * @업무설명 : var time = form.time.value; //'200102310000'
	 *     		if (!isValidTime(time)) {
	 *         		alert("올바른 날짜가 아닙니다.");
	 *     		}
	 * @param time
	 * @returns {Boolean}
	 */
	isValidTime: function(time){
	    var year  = time.substring(0,4);
	    var month = time.substring(4,6);
	    var day   = time.substring(6,8);
	    var hour  = time.substring(8,10);
	    var min   = time.substring(10,12);
	 
	    if (parseInt(year,10) >= 1900  && common.isValidMonth(month) &&
	    		common.isValidDay(year,month,day) && common.isValidHour(hour)   &&
	    		common.isValidMin(min)) {
	        return true;
	    }
	    return false;
	},

	/**
	 * @업무명 : Time 스트링을 자바스크립트 Date 객체로 변환
	 * @업무설명 : 
	 * @param time
	 * @returns {Date}
	 */
	toTimeObject: function(time){ //parseTime(time)
	    var year  = time.substr(0,4);
	    var month = time.substr(4,2) - 1; // 1월=0,12월=11
	    var day   = time.substr(6,2);
	    var hour  = time.substr(8,2);
	    var min   = time.substr(10,2);
	 
	    return new Date(year,month,day,hour,min);
	},

	/**
	 * @업무명 : 자바스크립트 Date 객체를 Time 스트링으로 변환
	 * @업무설명 : 
	 * @param date
	 * @returns {String}
	 */
	toTimeString: function(date){ //formatTime(date)
	    var year  = date.getFullYear();
	    var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
	    var day   = date.getDate();
	    var hour  = date.getHours();
	    var min   = date.getMinutes();
	 
	    if (("" + month).length == 1) { month = "0" + month; }
	    if (("" + day).length   == 1) { day   = "0" + day;   }
	    if (("" + hour).length  == 1) { hour  = "0" + hour;  }
	    if (("" + min).length   == 1) { min   = "0" + min;   }
	 
	    return ("" + year + month + day + hour + min);
	},

	/**
	 * @업무명 : Time이 현재시각 이후(미래)인지 체크
	 * @업무설명 : 
	 * @param time
	 * @returns {Boolean}
	 */
	isFutureTime: function(time){
	    return (toTimeObject(time) > new Date());
	},

	/**
	 * @업무명 : Time이 현재시각 이전(과거)인지 체크
	 * @업무설명 : 
	 * @param time
	 * @returns {Boolean}
	 */
	isPastTime: function(time){
	    return (toTimeObject(time) < new Date());
	},
	
	/**
	 * @업무명 : 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴
	 * @업무설명 : ex) var time = form.time.value; //'20000101000'
	 *     			alert(shiftTime(time,0,0,-100,0));
	 *     			=> 2000/01/01 00:00 으로부터 100일 전 Time
	 * @param time
	 * @param y
	 * @param m
	 * @param d
	 * @param h
	 * @returns
	 */
	shiftTime: function (time,y,m,d,h) { //moveTime(time,y,m,d,h)
	    var date = toTimeObject(time);
	 
	    date.setFullYear(date.getFullYear() + y); //y년을 더함
	    date.setMonth(date.getMonth() + m);       //m월을 더함
	    date.setDate(date.getDate() + d);         //d일을 더함
	    date.setHours(date.getHours() + h);       //h시를 더함
	 
	    return toTimeString(date);
	},

	/**
	 * @업무명 : 두 Time이 몇 개월 차이나는지 구함
	 * @업무설명 : time1이 time2보다 크면(미래면) minus(-)
	 * @param time1
	 * @param time2
	 * @returns
	 */
	getMonthInterval: function (time1,time2) {
	    var date1 = toTimeObject(time1);
	    var date2 = toTimeObject(time2);
	 
	    var years  = date2.getFullYear() - date1.getFullYear();
	    var months = date2.getMonth() - date1.getMonth();
	    var days   = date2.getDate() - date1.getDate();
	 
	    return (years * 12 + months + (days >= 0 ? 0 : -1) );
	},
	
	/**
	 * @업무명 : 두 Time이 며칠 차이나는지 구함
	 * @업무설명 : time1이 time2보다 크면(미래면) minus(-)
	 * @param time1
	 * @param time2
	 * @returns
	 */
	getDayInterval: function (time1,time2) {
	    var date1 = toTimeObject(time1);
	    var date2 = toTimeObject(time2);
	    var day   = 1000 * 3600 * 24; //24시간
	 
	    return parseInt((date2 - date1) / day, 10);
	},
	
	/**
	 * @업무명 : 두 Time이 몇 시간 차이나는지 구함
	 * @업무설명 : time1이 time2보다 크면(미래면) minus(-)
	 * @param time1
	 * @param time2
	 * @returns
	 */
	getHourInterval: function (time1,time2) {
	    var date1 = toTimeObject(time1);
	    var date2 = toTimeObject(time2);
	    var hour  = 1000 * 3600; //1시간
	 
	    return parseInt((date2 - date1) / hour, 10);
	},
	
	/**
	 * @업무명 : 현재 시각을 Time 형식으로 리턴
	 * @업무설명 : 
	 * @returns
	 */
	getCurrentTime: function () {
	    return toTimeString(new Date());
	},

	/**
	 * @업무명 : 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
	 * @업무설명 : 
	 * @param y
	 * @param m
	 * @param d
	 * @param h
	 * @returns
	 */
	getRelativeTime: function (y,m,d,h) {
	 
	    return shiftTime(getCurrentTime(),y,m,d,h);
	},

	/**
	 * @업무명 : 현재날짜
	 * @업무설명 : 
	 * @returns {String}
	 */
	getToDay: function (){

	    var date = new Date();

	    var year  = date.getFullYear();
	    var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
	    var day   = date.getDate();

	    if (("" + month).length == 1) { month = "0" + month; }
	    if (("" + day).length   == 1) { day   = "0" + day;   }
	    
	    return ("" + year + month + day);

	},
	
	/**
	 * @업무명 : 현재날짜
	 * @업무설명 : 
	 * @returns {String}
	 */
	getToDayType: function (type){

	    var date = new Date();

	    var year  = date.getFullYear();
	    var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
	    var day   = date.getDate();

	    if (("" + month).length == 1) { month = "0" + month; }
	    if (("" + day).length   == 1) { day   = "0" + day;   }
	     
	    return (year + type + month + type + day);

	},

	/**
	 * @업무명 : 현재 年을 YYYY형식으로 리턴
	 * @업무설명 : 
	 * @returns
	 */
	getYear: function () {
	 
	    return getCurrentTime().substr(0,4);
	},

	/**
	 * @업무명 : 현재 月을 MM형식으로 리턴
	 * @업무설명 : 
	 * @returns
	 */
	getMonth: function () {
	 
	    return getCurrentTime().substr(4,2);
	},
	
	/**
	 * @업무명 : 현재 日을 DD형식으로 리턴
	 * @업무설명 : 
	 * @returns
	 */
	getDay: function () {
	 
	    return getCurrentTime().substr(6,2);
	},

	/**
	 * @업무명 : 현재 時를 HH형식으로 리턴
	 * @업무설명 : 
	 * @returns
	 */
	getHour: function () {
	 
	    return getCurrentTime().substr(8,2);
	},

	/**
	 * @업무명 : 현재 요일
	 * @업무설명 : alert('오늘은 ' + getDayOfWeek() + '요일입니다.');
	 * @returns
	 */
	getDayOfWeek: function () {
	    var now = new Date();
	    var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
	    var week = new Array('일','월','화','수','목','금','토');
	 
	    return week[day];
	},

	/**
	 * @업무명 : 특정날짜의 요일을 구한다.
	 * @업무설명 : 
	 * @param time
	 * @returns
	 */
	getDayOfWeek2: function (time) {
	    var now = toTimeObject(time);
	 
	    var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
	    var week = new Array('일','월','화','수','목','금','토');
	 
	    return week[day];
	},
	
	////////////////////////////////////////////////////////////////
	//format 관련
	////////////////////////////////////////////////////////////////
	/**
	 * @업무명 : money format
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	frmMoney: function (input){
		return putComma(input);
	},
	
	/**
	 * @업무명 : unMoney format
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	unFrmMoney: function (input){
		return replace(input,",","");
	},
	
	/**
	 * @업무명 : Date format
	 * @업무설명 : 
	 * @param input
	 * @returns {String}
	 */
	frmDate: function (input){
		if(input=="") return 
		 return input.substring(0,4) + "-" + input.substring(4,6) + "-" + input.substring(6,8);
	},
	
	/**
	 * @업무명 : unDate format
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	unFrmDate: function (input){
		return replace(input,"-","");
	},

	/**
	 * @업무명 : Time format
	 * @업무설명 : 
	 * @param input
	 * @returns {String}
	 */
	frmTime: function (input){
		return input.substring(0,2) + ":" + input.substring(2,4) + ":" + input.substring(4,6);
	},

	/**
	 * @업무명 : unTime format
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	unFrmTime: function (input){
		return replace(input,":","");
	},
	
	////////////////////////////////////////////////////////////////
	// checkbox 관련
	////////////////////////////////////////////////////////////////
	/**
	 * @업무명 : 체크박스 전체선택
	 * @업무설명 : 
	 * @param all_chk_name
	 * @param chk_name
	 */
	fn_checkall: function (all_chk_name, chk_name){
		if($('input:checkbox[name="' + all_chk_name + '"]').is(":checked")){
			$('input:checkbox[name="' + chk_name + '"]').prop("checked",true);
		}else{
			$('input:checkbox[name="' + chk_name + '"]').prop("checked",false);
		}
	},

	/**
	 * @업무명 : 체크박스 옵션 전체 크기
	 * @업무설명 : 
	 * @param chk_name
	 * @returns
	 */
	fn_checkbox_size: function (chk_name){
		return $('input:checkbox[name="' + chk_name + '"]').size();
	},

	/**
	 * @업무명 : 체크박스 옵션 체크된 항목 크기
	 * @업무설명 : 
	 * @param chk_name
	 * @returns {Number}
	 */
	fn_checked_size: function (chk_name){
		var chk_val = 0;
		$('input:checkbox[name="' + chk_name + '"]').each(function(){
			if(this.checked){
				chk_val++;
			}
		});
		return chk_val;
	},

	/**
	 * @업무명 : 체크박스 옵션 체크된 항목 값
	 * @업무설명 : 결과값 예 : 2,3,4
	 * @param chk_name
	 * @returns {String}
	 */
	fn_checked_values: function (chk_name){
		var returnVal = "";
		$('input:checkbox[name="' + chk_name + '"]').each(function(){
			if(this.checked){
				if(returnVal == ''){
					returnVal = this.value;			
				}else{
					returnVal += ',' + this.value;
				}
			}
		});
		return returnVal;
	},
	
	////////////////////////////////
	// UTIL 함수
	////////////////////////////////
	/**
	 * @업무명 : 문자열의 오른쪽 끝에서 부터 지정된 개수만큼의 문자들을 리턴한다.
	 * @업무설명 : 
	 * @param str
	 * @param num
	 * @returns
	 */
	substrInverse: function (str, num){
		 var len;
	 
		 len = str.length;
	 
		 return str.substr(len - num, num);
	},
	 
	/**
	 * @업무명 : 문자열로의 특정위치로부터 지정된 개수의 문자들을 리턴한다.
	 * @업무설명 : 
	 * @param str
	 * @param idx
	 * @param num
	 * @returns
	 */
	substrMid: function (str, idx, num){
		return str.substr( idx-1, num);
	},

	/**
	 * @업무명 : 문자열에 있는 특정문자패턴을 다른 문자패턴으로 바꾸는 함수.
	 * @업무설명 : 
	 * @param targetStr
	 * @param searchStr
	 * @param replaceStr
	 * @returns
	 */
	replace: function (targetStr, searchStr, replaceStr){
		var len, i, tmpstr;
	 
		len = targetStr.length;
		tmpstr = "";
	 
		for ( i = 0 ; i < len ; i++ ) {
			if ( targetStr.charAt(i) != searchStr ) {
				tmpstr = tmpstr + targetStr.charAt(i);
			}else {
				tmpstr = tmpstr + replaceStr;
			}
		}
		return tmpstr;
	},
		    
	/**
	 * @업무명 : 문자열에서 좌우 공백제거
	 * @업무설명 : 
	 * @param str
	 * @returns
	 */
	trim: function (str){
		return replace(str," ","");
	},
		  
	/**
	 * @업무명 : 콤마설정.
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	putComma: function (input) { 
		var num = input;
		var out;
		var minus;
	  
		if (num < 0) { 
			num *= -1; 
			minus = true;
		}else{
			minus = false;
		}
	  
		var dotPos = (num+"").split(".");
		var dotU = dotPos[0];
		var dotD = dotPos[1];
		var commaFlag = dotU.length%3;
	 
		if(commaFlag) {
			out = dotU.substring(0, commaFlag); 
			if (dotU.length > 3) out += ",";
		}
		else out = "";
	 
		for (var i=commaFlag; i < dotU.length; i+=3) {
			out += dotU.substring(i, i+3); 
			if( i < dotU.length-3) out += ",";
		}
	 
		if(minus) out = "-" + out;
		if(dotD) return out + "." + dotD;
		else return out;
	 },
		  
	/**
	 * @업무명 : 월의 끝 일자 얻기
	 * @업무설명 : 
	 * @param datestr
	 * @returns {String}
	 */
	getEndDate: function (datestr){
		
		var yy = Number(datestr.substring(0,4));
		var mm = Number(datestr.substring(4,6));
		      
		//윤년 검증
		var boundDay = "";

		if(mm != 2){
			var mon=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
			boundDay = mon[mm-1];
		}else{
			if (yy%4 == 0 && yy%100 != 0 || yy%400 == 0){
				boundDay = "29";
			}else{
				boundDay = "28";
			}
		}
	  
		return boundDay;  
	 },

	/**
	 * @업무명 : Left 빈자리 만큼 padStr 을 붙인다.
	 * @업무설명 : 
	 * @param src
	 * @param len
	 * @param padStr
	 * @returns {String}
	 */
	lpad: function (src, len, padStr){
		var retStr = "";
		var padCnt = Number(len) - String(src).length;
		
		for(var i=0;i<padCnt;i++) 
			retStr += String(padStr);
		
		return retStr+src;
	},

	/**
	 * @업무명 : Right 빈자리 만큼 padStr 을 붙인다.
	 * @업무설명 : 
	 * @param src
	 * @param len
	 * @param padStr
	 * @returns {String}
	 */
	rpad: function (src, len, padStr){
		var retStr = "";
		var padCnt = Number(len) - String(src).length;
		
		for(var i=0;i<padCnt;i++) 
			retStr += String(padStr);
		
		return src+retStr;
	},

	/**
	 * @업무명 : 실제길이 반환( 한글 2byte 계산 )
	 * @업무설명 : 
	 * @param s
	 * @returns {Number}
	 */
	getByteLength: function (s){
		
		var len = 0;
	    if ( s == null ) return 0;
	    for(var i=0;i<s.length;i++){
	    	var c = escape(s.charAt(i));
	    	
	    	if ( c.length == 1 ) 
	    		len ++;
	    	else if ( c.indexOf("%u") != -1 ) 
	    		len += 2;
	    	else if ( c.indexOf("%") != -1 ) 
	    		len += c.length/3;
	    }
	    return len;
	 },

	/**
	 * @업무명 : 입력값의 바이트 길이를 리턴
	 * @업무설명 : if (getByteLength(form.title) > 100) {
	 *         		alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
	 *     		}
	 * @param input
	 * @returns {Number}
	 */
	getByteLen: function (input) {
	    var byteLength = 0;
	    for (var inx = 0; inx < input.length; inx++) {
	        var oneChar = escape(input.charAt(inx));
	        if ( oneChar.length == 1 ) {
	            byteLength ++;
	        } else if (oneChar.indexOf("%u") != -1) {
	            byteLength += 2;
	        } else if (oneChar.indexOf("%") != -1) {
	            byteLength += oneChar.length/3;
	        }
	    }
	    return byteLength;
	},
	 
	/**
	 * @업무명 : 입력값에서 콤마를 없앤다.
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	removeComma: function (input) {
	    return input.replace(/,/gi,"");
	},
	
	////////////////////////////////////////////////////////////////
	//validation 관련
	////////////////////////////////////////////////////////////////
	/**
	 * @업무명 : 숫자검증
	 * @업무설명 : 
	 * @param str
	 * @returns {Boolean}
	 */
	isNum: function (str){ 
		if(isEmpty(str)) return false;
		
		for(var idx=0;idx < str.length;idx++){
			if(str.charAt(idx) < '0' || str.charAt(idx) > '9'){
				return false;
			}
		}
		return true;
	},
	
	/**
	 * @업무명 : 숫자검증 onkeyup
	 * @업무설명 : onkeyup시 숫자만 입력가능.
	 * @param obj
	 * @returns {Boolean}
	 */
	chkOnKeyNum: function(obj,event){
		var eventKeyCode = "";
		  
	    if( event.which ) { // IE9/Firefox/Chrome/Opera/Safari
	    	eventKeyCode =event.which;
	    } else if ( window.event ) {	// IE8 and earlier
	    	eventKeyCode = event.keyCode;
	    }
	    if(!(eventKeyCode >= 37 && eventKeyCode <= 40)){
	    	var check = /[^0-9]/gi;
			var temp_val = obj.value.toString();

			if(check.test(temp_val)){
		    	alert("숫자만 입력 가능합니다.");
		    	temp_val = temp_val.replace(check,'');
				obj.value = temp_val;	
			}
	    }
	    return;
	},
	
	/**
	 * @업무명 : 숫자검증 onkeyup
	 * @업무설명 : onkeyup시 숫자만 입력가능.
	 * @param obj
	 * @returns {Boolean}
	 */
	chkOnKeyNumDot: function(obj,event){
		var eventKeyCode = "";
		  
	    if( event.which ) { // IE9/Firefox/Chrome/Opera/Safari
	    	eventKeyCode =event.which;
	    } else if ( window.event ) {	// IE8 and earlier
	    	eventKeyCode = event.keyCode;
	    }
	    if(!(eventKeyCode >= 37 && eventKeyCode <= 40)){
	    	var check = /[^0-9|^\.]/gi;
			var temp_val = obj.value.toString();

			if(check.test(temp_val)){
		    	alert("숫자만 입력 가능합니다.");
		    	temp_val = temp_val.replace(check,'');
				obj.value = temp_val;	
			}
	    }
	    return;
	},

	/**
	 * @업무명 : 영문자검증
	 * @업무설명 : 
	 * @param str
	 * @returns {Boolean}
	 */
	isAlpha: function (str){
		if(isEmpty(str)) return false;
		
		for(var idx=0;idx < str.length;idx++){
			if(!((str.charAt(idx) >='a' && str <= 'z') || (str.charAt(idx) >= 'A' && str <= 'Z'))){
				return false;
			}
		}
		return true;
	},

	/**
	 * @업무명 : 한글검증
	 * @업무설명 : 
	 * @param str
	 * @returns {Boolean}
	 */
	isHangul: function (str){
		
		if(isEmpty(str)) return false;
		
		for(var idx=0;idx < str.length;idx++){
			var c = escape(str.charAt(idx));
			if ( c.indexOf("%u") == -1 ) {
				return false;
			}
		}
		return true;  
	},
	
	/**
	 * @업무명 : 한글검증 onkeyup
	 * @업무설명 : onkeyup시 한글만 받아오게처리한다
	 * @param obj
	 * @param event
	 * @returns {Boolean}
	 */
	chkOnKeyHangul: function(obj,event){
		var eventKeyCode = "";
		  
	    if( event.which ) { // IE9/Firefox/Chrome/Opera/Safari
	    	eventKeyCode =event.which;
	    } else if ( window.event ) {	// IE8 and earlier
	    	eventKeyCode = event.keyCode;
	    }
	    if(!(eventKeyCode >= 37 && eventKeyCode <= 40)){
	    	var check = /([^가-힣ㄱ-ㅎㅏ-ㅣ])/gi;
			var temp_val = obj.value.toString();

			if(check.test(temp_val)){
		    	alert("한글만 입력 가능합니다.");
		    	temp_val = temp_val.replace(check,'');
				obj.value = temp_val;
	    	}	    	
	    }
	    return;
	},

	/**
	 * @업무명 : 입력값이 NULL인지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns {Boolean}
	 */
	isNull: function (input) {
	    if (input == null || input == "") {
	        return true;
	    }
	    return false;
	},
	 
	/**
	 * @업무명 : 입력값에 스페이스 이외의 의미있는 값이 있는지 체크
	 * @업무설명 : if (isEmpty(form.keyword)) {
	 *         		alert("검색조건을 입력하세요.");
	 *     		}
	 * @param input
	 * @returns {Boolean}
	 */
	isEmpty: function (input) {
	    if (input == null || input.replace(/ /gi,"") == "") {
	        return true;
	    }
	    return false;
	},

	/**
	 * @업무명 : 입력값에 특정 문자(chars)가 있는지 체크
	 * @업무설명 : 특정 문자를 허용하지 않으려 할 때 사용
	 * 			if (containsChars(form.name,"!,*&^%$#@~;")) {
	 *         		alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
	 *     		}
	 * @param input
	 * @param chars
	 * @returns {Boolean}
	 */
	containsChars: function (input,chars) {
	    for (var inx = 0; inx < input.length; inx++) {
	       if (chars.indexOf(input.charAt(inx)) != -1)
	           return true;
	    }
	    return false;
	},
	 
	/**
	 * @업무명 : 입력값이 특정 문자(chars)만으로 되어있는지 체크
	 * @업무설명 : 특정 문자만 허용하려 할 때 사용
	 * 			if (!containsCharsOnly(form.blood,"ABO")) {
	 *         		alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
	 *     		}
	 * @param input
	 * @param chars
	 * @returns {Boolean}
	 */
	containsCharsOnly: function (input,chars) {
	    for (var inx = 0; inx < input.length; inx++) {
	       if (chars.indexOf(input.charAt(inx)) == -1)
	           return false;
	    }
	    return true;
	},

	/**
	 * @업무명 : 입력값이 알파벳인지 체크
	 * @업무설명 : 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
	 * 			자주 쓰이는 경우에는 var chars 변수를 
	 * 			global 변수로 선언하고 사용하도록 한다.
	 * 
	 * 			var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	 *     		var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
	 *     		var number    = "0123456789";
	 *     		function isAlphaNum(input) {
	 *         		var chars = uppercase + lowercase + number;
	 *         		return containsCharsOnly(input,chars);
	 *     		}
	 * @param input
	 * @returns
	 */
	isAlphabet: function (input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값이 알파벳 대문자인지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isUpperCase: function (input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값이 알파벳 소문자인지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isLowerCase: function (input) {
	    var chars = "abcdefghijklmnopqrstuvwxyz ";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값에 숫자만 있는지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isNumber: function (input) {
	    var chars = "0123456789";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값이 알파벳,숫자로 되어있는지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isAlphaNum: function (input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";
	    return containsCharsOnly(input,chars);
	},

	/**
	 * @업무명 : 입력값이 알파벳대문자,숫자로 되어있는지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isBigAlphaNum: function (input) {
	    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
	    return containsCharsOnly(input,chars);
	},
	
	/**
	 * @업무명 : 입력값이 숫자,대시(-)로 되어있는지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isNumDash: function (input) {
	    var chars = "-0123456789";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값이 숫자,콤마(,)로 되어있는지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isNumComma: function (input) {
	    var chars = ",0123456789";
	    return containsCharsOnly(input,chars);
	},
	 
	/**
	 * @업무명 : 입력값이 사용자가 정의한 포맷 형식인지 체크
	 * @업무설명 : 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
	 * @param input
	 * @param format
	 * @returns {Boolean}
	 */
	isValidFormat: function (input,format) {
	    if (input.search(format) != -1) {
	        return true; //올바른 포맷 형식
	    }
	    return false;
	},
	 
	/**
	 * @업무명 : 입력값이 이메일 형식인지 체크
	 * @업무설명 : if (!isValidEmail(form.email)) {
	 *         		alert("올바른 이메일 주소가 아닙니다.");
	 *     		}
	 * @param input
	 * @returns
	 */
	isValidEmail: function (input) {
	    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
	    return isValidFormat(input,format);
	},
	 
	/**
	 * @업무명 : 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
	 * @업무설명 : 
	 * @param input
	 * @returns
	 */
	isValidPhone: function (input) {
	    var format = /^(\d+)-(\d+)-(\d+)$/;
	    return isValidFormat(input,format);
	},
	
	//common.checkName(value);
	/**
	 * @업무명 : 영문숫자만 받아온다.
	 * @업무설명 : 
	 * @param id
	 * @returns {Boolean}
	 */
	checkEnNum: function(id){
		var checkValue = /^[A-Za-z0-9]+$/;
		if(checkValue.test($("#"+id).val())){
			return true;
		}else{
			return false;
		}
	},
	
	/**
	 * @업무명 : onKey 액션시 영문과 숫자만 입력가능
	 * @업무설명 : 
	 * @param obj
	 * @param event
	 */
	chkOnKeyEnNum: function(obj,event){
		var eventKeyCode = "";
		  
	    if( event.which ) { // IE9/Firefox/Chrome/Opera/Safari
	    	eventKeyCode =event.which;
	    } else if ( window.event ) {	// IE8 and earlier
	    	eventKeyCode = event.keyCode;
	    }
	    
	    if(!(eventKeyCode >= 37 && eventKeyCode <= 40)){ 	
	    	var check = /[^a-zA-Z0-9]/gi;
			var temp_val = obj.value.toString();
		    
			if(check.test(temp_val)){
			    alert("영문 숫자만 입력 가능합니다.");
			    temp_val = temp_val.replace(check,'');
				obj.value = temp_val;	
			}
	    }
	    return;
	},
	
	/**
	 * @업무명 : value값 체크
	 * @업무설명 : 
	 * @param obj
	 * @param len
	 */
	chkValueLen: function(obj,len){
		if(obj.value.length > len){
			alert("권한 설명이 "+ len +"자를 넘었습니다.\n "+ len + "자까지 입력해주세요.");
			obj.value = obj.value.substring(0,len);
			return;
		}
	},
	
	/**
	 * @업무명 : 보기 값 변경
	 * @업무설명 : 보기 번호를 반환해준다.
	 * @param type
	 * @param num
	 */
	getExDtlNo: function(type,num){
		var type1 = ["㉮","㉯","㉰","㉱","㉲"];
		var type2 = ["㈎","㈏","㈐","㈑","㈒"];
		var type3 = ["①","②","③","④","⑤"];
		var type4 = ["⑴","⑵","⑶","⑷","⑸"];
		var type5 = ["ⓐ","ⓑ","ⓒ","ⓓ","ⓔ"];
		var type6 = ["⒜","⒝","⒞","⒟","⒠"];
		var type7 = ["㉠","㉡","㉢","㉣","㉤"];
		var type8 = ["㈀","㈁","㈂","㈃","㉤"];
		
		if(type == 'EX01'){
			return type1[num];
		}else if(type == 'EX02'){
			return type2[num];
		}else if(type == 'EX03'){
			return type3[num];
		}else if(type == 'EX04'){
			return type4[num];
		}else if(type == 'EX05'){
			return type5[num];
		}else if(type == 'EX06'){
			return type6[num];
		}else if(type == 'EX07'){
			return type7[num];
		}else{
			return type8[num];
		}
		
		return;
	}
};